package com.coderman.infosys.plat.auth.common.bo;

import com.coderman.infosys.plat.auth.common.enums.StatusEnum;
import lombok.Data;
import org.apache.commons.lang3.builder.ReflectionToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * Description:抽象业务操作对象容器
 * date: 2022/1/4
 *
 * @author shenshuai
 * @version 1.0.0
 * @since JDK 1.8
 */
@Data
public class BaseOperator {

    /** 创建时间 **/
    public Date dateCreate;

    /** 修改时间 **/
    public Date dateUpdate;

    /** 修改人 **/
    public Long updateUserId;

    /** 创建人 **/
    public Long createUserId;

    /**
     * 状态
     */
    public Integer status;

    /**
     * 主键
     */
    public Long id;

    public void enable(){
        status = StatusEnum.ENABLE.getStatus();
    }

    public void disable(){
        status = StatusEnum.DISABLE.getStatus();
    }


    /**
     * 初始化时间
     */
    public void initDate() {
        Date now = new Date();
        dateCreate = now;
        dateUpdate = now;
    }

    @Override
    public String toString() {
        return ReflectionToStringBuilder.toString(this, ToStringStyle.DEFAULT_STYLE);
    }
}
